package cn.tedu;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

// 测试 注解
public class Test3_Annotation {
    public static void main(String[] args) {

    }
}

//一、1.自定义注解:@interface,注解名
//2.指定注解的位置 --类上、方法上、属性上、变量上...
//@Target(ElementType.METHOD) //3.Test注解可以出现在方法上
@Target({ElementType.METHOD,ElementType.FIELD})//可以出现在多个位置上
//4.指定注解的生命周期--源码里/class文件里/运行时
@Retention(RetentionPolicy.SOURCE)//5.Test注解可以出现在源文件里
@interface  Test{
    //6.给注解添加功能(属性)
    String local() ;
    //7.添加特殊属性 --特性在于，使用时可以额直接赋值，类似于@Test("123"),其实是@Test(value="123")
    // String value();
}
//二、1.使用注解
class HelloWorld{
    @Test(local="s")//3.使用注解时，由于注解有属性要求，所以必须赋值
            String s = "ok";
    @Test(local="hi")//2.必须在指定位置使用注解
    public void hi(){
        System.out.println("hi()...");
    }
}
